iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
AI & Data

從零開始或許曾經想過但想想還是算了的深度雜技系列 第 8

[DAY 08] CNN的前行之路 : Convolution、Pooling 、Activation計算簡介 Part.2

  • 分享至 

  • xImage
  •  

前言


今天我們要來繼續 CNN 的前行計算之路(Forward)所需要用到的計算模式,會順便提一下在 Pooling 以及 Activation 上不同的選擇以及效果

CNN 結構

我們再次參考上一章的圖
https://ithelp.ithome.com.tw/upload/images/20190922/20120549wtiqSF2a2E.png
從這張圖我們可以看到 Convolution layer完了之後琪時並不會立刻屆下一層的 Convolution Layer,反而是會有Activation layer 以及pooling layer等 Layer 出現,我們依次來介紹這兩種 layer 的運算行為為何?

Pooling Layer

Pooling Layer 也被稱為 Downsampling 、 Spatial Pooling)或 Subsampling,主要是可以縮小、濃縮 Feature map,但同時希望能夠保留 Feature map 內的關鍵訊息。效果就像是這個下面連結一樣:
Pooling效果參考
把一張照片擷取些小照片資訊拼起來,畫面變小但還是看得出來是啥
Pooling主要的效果有:

  1. 增加感受野,因為照片變小了,所以如果kernal在上面移動做計算,花更少的步數就可以看完整張照片
  2. Translation Invariance:因為pooling對照片進行壓縮,所以已經抽象化並壓縮了一部分的資訊,像是 maxpooling 是取一定空間方格內的最大值,所以只要這個方格一起移動,那麼其實取 pooling 後的結果一樣會保留最大值的那格因此允許照片中的物體做一定量的移動
  3. 減小矩陣大小可以減少記憶體使用量以及減少了計算參數可以避免 Overfitting
  4. 常見的 Pooling有以下兩種 : Max 以及 Average,那麼顧名思義的效果也可見下面
    https://ithelp.ithome.com.tw/upload/images/20190924/20120549HSvHTadJqc.png
    5.如果有多張Feature Map,那Pooling是分別對每張 Feature Map 做!!

Activation Function

最開始的時候,科學家們參考了生物學界的神經在傳遞資訊給下一個神經元時會有全有全無律,意即如果不超過一定量值時,是不會傳遞資訊下去的
https://ithelp.ithome.com.tw/upload/images/20190924/20120549W53cgf91l6.png
在類神經網路中使用Activation Function(激勵函數),主要是利用非線性方程式,解決非線性的問題,若不使用激勵函數,類神經網路即是以線性的方式組合運算(意即多個矩陣相乘還是只是個矩陣),而Activation Function其實可以隨意設計但有以下兩個限制:

  1. 激勵函數需選擇可微分之函數,因為在誤差反向傳遞(Back Propagation)運算時,需要進行一次微分計算。
    2.在深度學習中,當隱藏層之層數過多時,激勵函數不可隨意選擇,因為會造成梯度消失(Vanishing Gradient)以及梯度爆炸(Exploding gradients)等問題。這兩個問題我們會在 "Backpropagation"那章提及
    常見的 Activation Function 有以下幾個:
    https://ithelp.ithome.com.tw/upload/images/20190924/20120549Xr5rHmENoZ.png

結語

有了這些工具,其實我們已經有能力可以構建出一個 CNN 模型,但這個雖然能動,卻還不具備學習的能力,因此下一章我們將介紹 CNN 進步的動力: Backpropagation !

參考資料

  1. https://blog.csdn.net/danieljianfeng/article/details/42433475
  2. https://www.zhihu.com/question/36686900
  3. https://www.quora.com/What-is-the-benefit-of-using-average-pooling-rather-than-max-pooling
  4. https://blog.csdn.net/u012193416/article/details/79432668
  5. https://medium.com/@bdhuma/which-pooling-method-is-better-maxpooling-vs-minpooling-vs-average-pooling-95fb03f45a9
  6. https://zhuanlan.zhihu.com/p/32299939
  7. https://blog.csdn.net/danieljianfeng/article/details/42433475
  8. https://zhuanlan.zhihu.com/p/42741086
  9. https://morvanzhou.github.io/tutorials/machine-learning/ML-intro/3-04-activation-function/
  10. https://towardsdatascience.com/activation-functions-and-its-types-which-is-better-a9a5310cc8f

上一篇
[DAY 07] CNN的前行之路 : Convolution、Pooling 、Activation計算簡介 Part.1
下一篇
[DAY 09] CNN的前行之末 : Fully Connected Layer & Loss function
系列文
從零開始或許曾經想過但想想還是算了的深度雜技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言